
$(function() {
  var $loginForm = $('#login-form');

  $loginForm.on('click', '#login-btn', function() {
    if($(this).hasClass('disable')) {
      return false;
    }

    var $email = $loginForm.find('[name=email]');
    var $password = $loginForm.find('[name=password]');

    var postData = {
      email: $email.val(),
      password: $password.val(),
    };

    //todo
    postData.password = $.md5(postData.password);

    $.post('/login', postData, function(data) {
      if(data && data.url) {
        document.location.href = data.url;
      } else if(data && data.error) {
        $loginForm.find('.error-text').removeClass('hide').html(data.message);
        $loginForm.find('.has-feedback.has-error').removeClass('has-error').find('.glyphicon').removeClass('glyphicon-remove');

        if(data.error == 1) {
          $email.parent('.has-feedback').addClass('has-error').find('.glyphicon').addClass('glyphicon-remove');
        } else {
          $password.parent('.has-feedback').addClass('has-error').find('.glyphicon').addClass('glyphicon-remove');
        }
      } else {
        document.location.reload();
      }
    });

  });

  $loginForm.on('blur','input',function(){
    var $that  = $(this);
    var $hasFeedback = $that.parent('.has-feedback');
    var fieldName = $that.attr('name');
    var fieldVal = $.trim($that.val());
    var errorTxt = '';

    if(fieldName=='email'){
      if(!fieldVal){
        errorTxt = '邮箱不能为空！';
      } else if(!/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(fieldVal)){
        errorTxt = '邮箱格式错误！';
      }
    }else if(fieldName=='password'){
      if(!fieldVal){
        errorTxt = '密码不能为空！';
      }
    }

    if(errorTxt){
      $loginForm.find('.error-text').removeClass('hide').html(errorTxt);
      $hasFeedback.addClass('has-error').find('.glyphicon').removeClass('glyphicon-ok').addClass('glyphicon-remove');
      $loginForm.find('#login-btn').addClass('disable');
    } else {
      if($hasFeedback.hasClass('has-error')) {
        $hasFeedback.removeClass('has-error').find('.glyphicon').removeClass('glyphicon-remove');
        $loginForm.find('.error-text').addClass('hide');
      }
      $hasFeedback.addClass('has-success').find('.glyphicon').addClass('glyphicon-ok');
    }

    if($loginForm.find('.glyphicon-remove').length < 1) {
      $loginForm.find('#login-btn').removeClass('disable');
    }

  });

});